package com.cmft.waltzpagemanager

interface IPageProvider {
    /**
     * 根据页面id和版本获取本地缓存的页面完整信息
     */
    fun pageApp(
        identifier: String, version: Int,
        success: (pageApp: PageApp) -> Unit,
        failed: (error: String) -> Unit
    )

    /**
     * 根据页面id和版本获取页面完整信息
     * version=0: 表示获取最新版本，此依赖本地缓存策略，当本地有缓存时返回缓存中最大版本，
     * 无则从远端获取(依赖远端的下发策略)
     */
    fun fetchPageApp(
        identifier: String,
        version: Int,
        success: (pageApp: PageApp) -> Unit,
        failed: (error: String) -> Unit
    )

    /**
     * 获取Web页面的本地资源路径
     */
    fun resourceFilePath(
        webApp: WebApp,
        success: (fileUrl: String) -> Unit,
        failed: (error: String) -> Unit
    )

    /**
     * 下载Web页面的本地资源路径
     */
    fun downloadResource(
        webApp: WebApp,
        progress: (progress: Int) -> Unit,
        success: (fileUrl: String) -> Unit,
        failed: (error: String) -> Unit
    )
}